package com.liyy.platform.other.pattern.singleton;

//测试枚举式实现单例模式(没有延时加载)，类加载时就初始化 DATASOURCE 实例对象
public enum Enum_Singleton {
	
	//这个枚举元素，本身就是单例对象！
	//枚举底层声明为：public static final Enum_Singleton DATASOURCE;
	//static属于类信息，保证类加载时只有一个线程执行，保证线程安全
	//final保证只被初始化一次，即只执行一次构造方法
    DATASOURCE;
    
    private DBConnection connection = null;
    
    //jvm底层保证每个枚举元素只执行一次构造方法
    private Enum_Singleton() {
        connection = new DBConnection();
    }
    public DBConnection getConnection() {
        return connection;
    }
}
